package cn.edu.scau.serviceImpl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import cn.edu.scau.dao.ColumnsDao;
import cn.edu.scau.daoImpl.ColumnsDaoImpl;
import cn.edu.scau.entity.Columns;
import cn.edu.scau.service.ColumnsService;

/**
 * 栏目服务的接口的实例
 * @author Administrator
 */
@Service("columnsServiceImpl")
public class ColumnsServiceImpl implements ColumnsService {
	
	/**
	 * 栏目DAO接口实例
	 */
	@Resource(name="columnsDaoImpl")
	private ColumnsDao columnsDao;
	
	public ColumnsDao getColumnsDao() {
		return columnsDao;
	}

	public void setColumnsDao(ColumnsDao columnsDao) {
		this.columnsDao = columnsDao;
	}

	/**
	 * 增加栏目
	 * @param columns 增加的新栏目
	 */
	public void addColumns(Columns columns) {
		columnsDao.save(columns);
	}
	
	/**
	 * 更新栏目信息
	 * @param newColumns 新的栏目
	 * @param id 需要更新栏目的id
	 */
	public boolean updateColumns(Columns newColumns,Integer id) {
		
		Columns columns = columnsDao.find(Columns.class, id);
		if(columns==null){
			return false;
		}else{
			if(newColumns.getModelId()!=null){
				columns.setModelId(newColumns.getModelId());
			}
			if(newColumns.getName()!=null){
				columns.setName(newColumns.getName());
			}
			if(newColumns.getOrder()!=null){
				columns.setOrder(newColumns.getOrder());
			}
			if(newColumns.getParentId()!=null){
				columns.setParentId(newColumns.getParentId());
			}
			if(newColumns.getStatement()!=null){
				columns.setStatement(newColumns.getStatement());
			}
			columnsDao.update(columns);
			return true;
		}
		
	}
	/**
	 * 展示所有父级栏目id为0的栏目
	 */
	public List<Columns> showAllFatherColumns() {
		return columnsDao.showAllFatherColumns();
	}
	/**
	 * 展示指定id的栏目的所有子级栏目
	 * @param parentColumnId 父级栏目的id
	 */
	public List<Columns> showAllChildColumns(Integer parentColumnId) {
		return columnsDao.showAllChildColumns(parentColumnId);
	}
	/**
	 * 根据id展示栏目的信息
	 * @param id 栏目的id
	 */
	public Columns showTheColumnsById(Integer id) {
		return columnsDao.find(Columns.class, id);
	}

	/**
	 * 删除栏目
	 * @param id 栏目的id
	 */
	public boolean deleteColumns(Integer id) {
		
		Columns columns = columnsDao.find(Columns.class, id);
		if(columns==null){
			return false;
		}else{
			columnsDao.delete(Columns.class, id);
			return true;
		}
	}
}
